From 2661403f88af24530e57ada1c552311ae1c6fb26 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 6 Aug 2012 22:56:59 -0400 Subject: [PATCH] Fix DND keyboard control with XI2 We are using XI2 to grab the key events, but we did not do the necessary extra work to make GDK deliver root window events to us. https://bugzilla.gnome.org/show_bug.cgi?id=681006 --- gtk/gtkdnd.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c index 27a615ec43..42f7221ebd 100644 --- a/gtk/gtkdnd.c +++ b/gtk/gtkdnd.c @@ -411,6 +411,18 @@ root_key_filter (GdkXEvent *xevent, if ((ev->type == KeyPress || ev->type == KeyRelease) && ev->xkey.root == ev->xkey.window) ev->xkey.window = (Window)data; + else if (ev->type == GenericEvent) + { + XGenericEventCookie *cookie; + XIDeviceEvent *dev; + + cookie = &ev->xcookie; + dev = (XIDeviceEvent *) cookie->data; + + if (dev->evtype == XI_KeyPress || + dev->evtype == XI_KeyRelease) + dev->event = (Window)data; + } return GDK_FILTER_CONTINUE; } -- 2.30.2